﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Net.Mail;

namespace Entidades.Sistema
{
    public class StateOrdenCancelada : StateOrden
    {
        public override string DevolverEstado()
        {
            return "Cancelada";
        }
        public override void EnviarMail()
        {
            try
            {
                MailAddress fromAddress = new MailAddress("trabajodediploma2012@gmail.com", "From Name");
                MailAddress toAddress = new MailAddress("lucas.farruggia@accenture.com", "To Name");
                const string subject = "Orden Cancelada";
                const string body = @"Hola, se envia este correo para informar que la orden ha sido cancelada.";

                System.Net.Mail.MailMessage msg = new System.Net.Mail.MailMessage(fromAddress.Address, toAddress.Address, subject, body);
                msg.IsBodyHtml = true;

                var client = new SmtpClient("smtp.gmail.com", 587)
                {
                    Credentials = new NetworkCredential("trabajodediploma2012@gmail.com", "diploma2012"),
                    EnableSsl = true
                };

                client.Send(msg);
            }
            catch (Exception ex)
            {
                throw (ex);
            }
        }

        public override void EstadoCreada(Entidades.Sistema.OrdenProduccion orden)
        {
            orden.stateOrden = new StateOrdenCreada();
        }
        public override void EstadoCancelada(Entidades.Sistema.OrdenProduccion orden)
        {
            orden.stateOrden = new StateOrdenCancelada();
        }
        public override void EstadoFinalizada(Entidades.Sistema.OrdenProduccion orden)
        {
            orden.stateOrden = new StateOrdenFinalizada();
        }
        public override void EstadoIniciada(Entidades.Sistema.OrdenProduccion orden)
        {
            orden.stateOrden = new StateOrdenIniciada();
        }
        public override void EstadoInterrumpida(Entidades.Sistema.OrdenProduccion orden)
        {
            orden.stateOrden = new StateOrdenInterrumpida();
        }
        public override void EstadoGeneral(Entidades.Sistema.OrdenProduccion orden)
        {
            orden.stateOrden = new StateOrdenGral();
        }


    }
}
